Port gtk-demo widgets to gtk_widget_clear_template()
authorEmmanuele Bassi <ebassi@gnome.org>
Wed, 6 Jul 2022 12:23:54 +0000 (13:23 +0100)
committerEmmanuele Bassi <ebassi@gnome.org>
Mon, 11 Jul 2022 17:24:37 +0000 (18:24 +0100)
demos/gtk-demo/application.c
demos/gtk-demo/demo3widget.c
demos/gtk-demo/listbox.c

index f1bca0523d509651bfb43f48f5281099ef597538..e0acb60305b9928f37678e43426c24a746bfd451 100644 (file)
@@ -504,6 +504,8 @@ demo_application_window_dispose (GObject *object)
 
   demo_application_window_store_state (window);
 
+  gtk_widget_clear_template (GTK_WIDGET (window), demo_application_window_get_type ());
+
   G_OBJECT_CLASS (demo_application_window_parent_class)->dispose (object);
 }
 
index 7a13f698c4987e326414c2e167dee68907927138..51a820a3ffa467a0e22a0953fd1c406cfa678be2 100644 (file)
@@ -37,7 +37,8 @@ demo3_widget_dispose (GObject *object)
   Demo3Widget *self = DEMO3_WIDGET (object);
 
   g_clear_object (&self->paintable);
-  g_clear_pointer (&self->menu, gtk_widget_unparent);
+
+  gtk_widget_clear_template (GTK_WIDGET (self), DEMO3_TYPE_WIDGET);
 
   G_OBJECT_CLASS (demo3_widget_parent_class)->dispose (object);
 }
index 98a6a26611434f4500dab304e216a566a350d921..c08cf681b726f87aa65ebfabf81e85088dfe52af 100644 (file)
@@ -260,12 +260,19 @@ gtk_message_row_state_flags_changed (GtkWidget    *widget,
   GTK_WIDGET_CLASS (gtk_message_row_parent_class)->state_flags_changed (widget, previous_state_flags);
 }
 
+static void
+gtk_message_row_dispose (GObject *obj)
+{
+  gtk_widget_clear_template (GTK_WIDGET (obj), GTK_TYPE_MESSAGE_ROW);
+  G_OBJECT_CLASS (gtk_message_row_parent_class)->dispose (obj);
+}
+
 static void
 gtk_message_row_finalize (GObject *obj)
 {
   GtkMessageRowPrivate *priv = GTK_MESSAGE_ROW (obj)->priv;
   g_object_unref (priv->message);
-  G_OBJECT_CLASS (gtk_message_row_parent_class)->finalize(obj);
+  G_OBJECT_CLASS (gtk_message_row_parent_class)->finalize (obj);
 }
 
 static void
@@ -274,6 +281,7 @@ gtk_message_row_class_init (GtkMessageRowClass *klass)
   GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
+  object_class->dispose = gtk_message_row_dispose;
   object_class->finalize = gtk_message_row_finalize;
 
   gtk_widget_class_set_template_from_resource (widget_class, "/listbox/listbox.ui");